package com.yuesystem.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuesystem.dto.responsebody.CollectItemResponseBody;
import com.yuesystem.entity.CollectItem;
import java.util.List;

/**
 * 收藏条目接口.
 */
public interface CollectItemService extends IService<CollectItem> {

  /**
   * 向Item表中增加一条记录.
   *
   * @param folderId 所属收藏夹id
   * @param type     类型（官职/书院/帖子）
   * @param id       （官职/书院/帖子id）
   * @return 操作是否成功
   */
  Boolean add(Long folderId, String type, Long id);

  /**
   * 在Item表中删除一条记录.
   *
   * @param itemId 收藏条目id（主键）
   * @return 操作是否成功
   */
  Boolean cancel(Long itemId);

  /**
   * 判断当前（官职/书院/帖子）条目是否被收藏过.
   *
   * @param collectId （官职/书院/帖子id）
   * @param type      类型（官职/书院/帖子）
   * @return 被收藏的条目id
   */
  Long judge(Long collectId, String type);

  /**
   * 获取某个用户的某个收藏夹下的所有条目.
   *
   * @param folderId 收藏夹id
   * @return 收藏条目响应类列表
   */
  List<CollectItemResponseBody> getAllItem(Long folderId);

  /**
   * 根据blog的id删除所有和他有关的收藏.
   *
   * @param listBlogs 帖子id列表
   */
  void deleteByBlog(List<Long> listBlogs);
}
